package com.liruo.learn.spring.mvc.enumconverter.api;

/**
 * @Author:liruo
 * @Date:2023-02-20-21:29:09
 * @Desc
 */
public class NameEnumConverter <E extends Enum<E>> extends AbstractEnumConverter<String, E>{
    public NameEnumConverter(Class<E> enumClazz) {
        super(enumClazz);
        for (E enumConstant : enumClazz.getEnumConstants()) {
            enumMap.put(enumConstant.name(), enumConstant);
        }
    }

    @Override
    public String serialize(E enumeration) {
        return enumeration.name();
    }

    @Override
    public E deserialize(String value) {
        return this.enumMap.get(value);
    }
}
